home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / util / cli / nvtools.lha / ListNV.mod < prev    next >
Text File  |  1995-09-30  |  1KB  |  68 lines

  1. MODULE ListNV;
  2. (*
  3.   $StackChk-
  4.   $RangeChk-
  5.   $NilChk-
  6.   $OvflChk-
  7.   $ReturnChk-
  8.   $CaseChk-
  9. *)
  10.  
  11. IMPORT
  12.   y := SYSTEM,
  13.  
  14.   (* Interfaces *)
  15.   d := Dos,
  16.   e := Exec,
  17.   nv := NonVolatile,
  18.  
  19.   str := Strings;
  20.  
  21. CONST
  22.   template = "AN=APPNAME/A,KR=KILLREQUESTER/S"
  23.              "\o$VER: ListNV.mod 1.0 (30.09.95)";
  24.  
  25. TYPE
  26.   Args = STRUCT (as :d.ArgsStruct)
  27.     appName   :d.ArgString;
  28.     killReq   :d.ArgBool;
  29.   END;
  30.  
  31. VAR
  32.   args      :d.RDArgsPtr;
  33.   argv      :Args;
  34.  
  35.   list      :e.MinListPtr;
  36.   entry,
  37.   nextEntry :nv.NVEntryPtr;
  38.  
  39. BEGIN
  40.   IF nv.base=NIL THEN
  41.     d.PrintF("No nonvolatile.library!\n");
  42.     HALT(20);
  43.   END;
  44.  
  45.   args := d.ReadArgs(template, argv, NIL);
  46.   IF args=NIL THEN
  47.     IF d.PrintFault(d.IoErr(), "ListNV") THEN END;
  48.     HALT(20);
  49.   END;
  50.  
  51.   list := nv.GetNVList(argv.appName^, argv.killReq);
  52.   entry := list.head;
  53.   LOOP
  54.     nextEntry := entry.node.succ;
  55.     IF nextEntry=NIL THEN EXIT END;
  56.     d.PrintF("%s", entry.name);
  57.     IF nv.delete IN y.VAL(LONGSET, entry.protection) THEN
  58.       d.PrintF("*");
  59.     END;
  60.     d.PrintF("\n");
  61.     entry := nextEntry;
  62.   END;
  63.  
  64. CLOSE
  65.   d.FreeArgs(args);
  66.   nv.FreeNVData(y.VAL(nv.DataPtr, list));
  67. END ListNV.
  68.